package com.yb.java8;

import java.time.Clock;

/**
 * java8的新特性
 * 缺省方法或静态方法引入，让java拥有了C++类似的多重继承的能力，所以同样会存在继承导致的歧义
 * @author yanbiao
 *
 */
@FunctionalInterface//表明是函数式接口
public interface ICalculate {
	
	/**
	 * 使用default方法签名并实现方法体
	 * 实现类可以直接继承默认方法，也可以覆盖默认方法
	 */
	default Integer add(Integer x,Integer y) {
        return x+y;
    }
	
	/**
	 * 正常的抽象方法
	 */
    Integer minus(Integer x,Integer y);
    
    /**
	 * 定义静态方法,实现类不需实现，也无法在实现类中直接调用
	 */
    static void print(){
    	System.out.println("static method print()");
    	System.out.println(Clock.systemUTC().millis());
    }

}
